package tedu.week03.often_class;

/**
 * <pre>
 *  java.lang.StringBuffer 线程安全的带缓冲区的字符串序列.
 *      构造器:
 *          public StringBuffer()                   生成一个不带字符的缓冲区字符串.初始容量为16个字符.
 *          public StringBuffer(String str)         生成一个初始内容为str的缓冲区字符串.
 *          public StringBuffer(CharSequence seq)   生成一个初始内容为seq的缓冲区字符串.
 *          public StringBuffer(int capacity)       生成一个指定初始容量的缓冲区字符串.
 *      方法:
 *          public StringBuffer reverse()           缓冲区字符串反转
 *          public int capacity()                   返回当前容量
 *              超出16容量后,如果是一个append那么添加多少容量增加多少.
 *              超出16空量后,如果是多个append那么公式是length*2+2
 *          public void trimToSize()                尝试减少缓冲区字符串的容量为实际存储量
 *          public int length()                     返回长度(字符数)
 *          public StringBuffer append(Object obj)  在缓冲字符串后追加obj
 *          public StringBuffer deleteCharAt(int index)     通过index删除缓冲区字符串的字符
 *          public StringBuffer delete(int start,int end)   缓冲区字符串删除start到end的字符串
 *
 *          public int indexOf(String str)                  通过字符串查找索引下标
 *          public int indexOf(String str,int fromIndex)    从fromIndex开始通过字符串查找索引下标
 *          public StringBuffer replace(int start,int end,String str)
 *                              将str替换从start到end的字符串
 *
 *          public StringBuffer insert(int offset,Object obj)   将obj插入到offset位置
 *          public String substring(int start)                  从start开始剪切并生成一个新的字符串
 *          public CharSequence subSequence(int start,int end)  从start开始到end结束剪切并生成一个新的字符串
 * </pre>
 *
 * @author : resty
 * @date : 2019年06月09日    11时
 **/
public class Week03_StringBuffer {
    public static void main(String[] args) {
        StringBuffer sBuffer = new StringBuffer();
        sBuffer.append("添加字符串1123222222222222222224441234543232123123");
//        sBuffer.append(true);
//        System.out.println("sBuffer.length():" + sBuffer.length());
//        System.out.println("sBuffer.capacity():" + sBuffer.capacity());
        sBuffer.deleteCharAt(0);
        sBuffer.delete(0, 4);
        System.out.println(sBuffer);
        sBuffer.append("abcdefg");
//        sBuffer.trimToSize();
//        System.out.println(sBuffer.capacity());

        System.out.println(sBuffer.indexOf("222"));
        System.out.println(sBuffer.indexOf("222", 5));
        sBuffer.replace(4, 19, "a");
        System.out.println(sBuffer);
        sBuffer.insert(4, "bbb");
        System.out.println(sBuffer);
        String str = sBuffer.substring(4);
        System.out.println(str);
        String str1 = sBuffer.substring(8, 13);
        System.out.println(str1);
        System.out.println(sBuffer);
        sBuffer.reverse();
        System.out.println(sBuffer);
    }
}
